/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ComExWeb.ui.beans;

import ComExWeb.dominio.bolao.Equipe;
import ComExWeb.dominio.security.Grupo;
import ComExWeb.util.JsfUtil;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.apache.commons.fileupload.FileItem;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DualListModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author 002824992500
 */
@ManagedBean
@ViewScoped
public class EquipeJsfBean extends BaseCRUDJSFBean {

    private static final Logger log = LoggerFactory.getLogger(EquipeJsfBean.class);

    public Equipe getEquipe() {
        return getObjSelecionado();
    }

    public void setEquipe(Equipe res) {
        setObjSelecionado(res);
    }
    private List<Equipe> equipes = new ArrayList<Equipe>();

    public List<Equipe> getEquipes() {
        return equipes;
    }
    private DualListModel<Grupo> grupos = new DualListModel<Grupo>();

    public DualListModel<Grupo> getGrupos() {
        return grupos;
    }

    /** Creates a new instance of ColaboradorJSFBean */
    public EquipeJsfBean() {
    }

    public void handleFileUpload(FileUploadEvent event) {
       getEquipe().setImagem( event.getFile().getFileName() );
       
//   	try
// 		{
// 	       FileItem item = (FileItem) event.getFile();
//                   //Get nome do Arquivo  / Endereço
// 	        	String nome = getEquipe().getImagem();
//                 //Get posição das barras
// 	        	int pos = nome.lastIndexOf("\\");
//                 //Recupe ra apenas o nome do arquivo arquivo.algo
// 	        	nome = nome.substring(pos+1);
//                 //Path de onde será salvo o arquivo
// 	        	String path =  JsfUtil.getEC().getRequestContextPath() + "//img//" + nome;
//                 //Escrevendo o arquivo
// 	        	item.write(new File(path));
// 				//return SUCCESS;
// 		}
// 		catch (Exception e){
//         	JsfUtil.getFC().addMessage( "Não foi possível salvar o arquivo! Erro: "+e.getMessage(),null);
//
// 		}
       
       
               try
        {
           
           
            StringBuffer path =  new StringBuffer("resources/img/" + event.getFile().getFileName() );
           // path.deleteCharAt(0);
           // File result = new File(JsfUtil.getEC().getRequestContextPath()+"/web/resources/img/" + event.getFile().getFileName() );
         
            File result = new File(path.toString());
         
            //event.getComponent().get
            //File result = new File(event.getFile().getFileName());
            FileOutputStream out = new FileOutputStream(result);
            
            int BUFFER_SIZE = 8192;
            byte[] buffer = new byte[BUFFER_SIZE];

            int a;
            InputStream is = event.getFile().getInputstream();
            while (true) {
                a = is.read(buffer);
                if (a < 0)
                    break;
                out.write(buffer, 0, a);
                out.flush();
            }

            out.close();
            is.close();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
       

    }

    @Override
    public void setup() {
        setPaginaForm("form_equipe");
        setPaginaListagem("list_equipe");
        setCrudClass(Equipe.class);

        renovarTabela();
        //  JsfUtil.configPickList(getCrudService().findAll(Grupo.class), getEquipe().getGruposAutorizados(), this.grupos);

    }

    @Override
    protected void renovarTabela() {
        this.equipes = getCrudService().findAll(Equipe.class);
    }
}
